×

SparkFun will be closed on Tuesday, December 24th, and Wednesday, December 25th, in observance of the Christmas holiday. Any orders qualifying for same day shipping placed after 2:00 p.m. (MST) on Monday, December 23rd, will be processed on Thursday, December 26th, when we return to regular business hours. Wishing you a safe and happy holiday from all of us at SparkFun!

Please note - we will not be available for Local Pick up orders from December 24th-December 27th. If you place an order for Local Pick-Up we will have those ready on Monday, December 30th.

SparkFun VoiceBox Shield

The SparkFun VoiceBox Shield can be mounted on top of your Arduino board to give it access to all of the capabilities of the SpeakJet voice and sound synthesizer. The Voice Box Shield uses the SpeakJet chip to convert serial commands into a great robot-sounding voice.

Populated on the VoiceBox Shield are the SpeakJet IC, a two stage audio amplifier with a potentiometer to set the gain and a standard 3.5mm audio output jack. Simply connect a speaker to the output jack and get your Arduino-bot talking with very minimal work!

You can control the SpeakJet through either its serial line, or the eight event input lines which are connected to digital pins 5-12. A 3-way jumper allows you to connect either the software (D2) or hardware (D1) TX pin of the Arduino to the SpeakJet's serial input.

Also included on the shield are a grid of 0.1" pitch through-holes for prototyping as well as the Arduino's reset button. Headers are not included, we recommend the 6 and 8-pin stackable headers.

SparkFun VoiceBox Shield Product Help and Resources

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • RCModelReviews / about 13 years ago / 2

    I tried a SpeakJet for a project but it's really bad. The old speech synth chips of the 1980s were much better (from memory).

    In the end I had to go for pre-recorded words/phrases and an MP3 player in order that people could actually recognize what was being said with sufficient accuracy because the SpeakJet is just so very, very bad.

    • Member #584941 / about 10 years ago / 1

      I have that sc01 maybe a handful do you think I could use it on the voicebox shield?

    • Quazar / about 13 years ago * / 1

      Completely agree! I've still got an SC-01A kicking around in my junkbox somehwere... For those interested in some history, have a look at this.

      • Member #461652 / about 11 years ago / 1

        I have a speech synthesis box with a built-in amp sitting in my basement. I'd use it...but I can't get anything on the RS-232 port nor can I find docs. :(

        I think my box is from the same era...I forget who made it.

  • Quazar / about 13 years ago / 2

    I'm kinda surprised that you didn't add a 14th row of holes for the TTS256. The layout isn't very cramped and this could have easily been done without having to reroute anything.

    Better yet, pre-route wires to the right pads and silk-screen the footprint of the TTS256 in the proto area to make it even easier.

    Given that the tutorial to work around this oversight is linked right from the product page, this is clearly a very common request/mod.

  • TLR / about 10 years ago * / 1

    Maybe I'm missing something here, but I'm using a proto shield on top of the VoiceBox shield, and when I try to run 5v power to the proto board through the VoiceBox shield (from my Arduino UNO) I get a high-pitched pulsing sound. If I run the power from an external power source, I have no issues. I'm basically just powering an infrared motion sensor. Could the sensor be drawing too much power through the VoiceBox Shield?

    The sensor I'm using is the "Infrared Proximity Sensor Long Range - Sharp GP2Y0A02YK0F"

  • Taper / about 11 years ago / 1

    Just got this running and wanted to point out two things about the example code that could cause problems --

    1) There's no delay between the SpeakJet's reset and when it starts in on the first message. Since it's set up to say "Ready" on reset, this makes the demo sound not quite like "All your base are belong to us"; add some pareidolia and I was hearing "Every your base are belong to us".

    2) The strings created to pass to the SpeakJet are not null-terminated. This will give the SoftSerial.print call problems finding the end of each string; in practice, the string of phonemes is read, the .print() keeps looking for a \0, and continues straight on to the next string, the robot noises. It finds a null after that (because it's the last global variable declared) and thus plays the robot noises twice. You can not count on just happening to have a null after an unterminated string, though -- for instance, if the next allocated byte after an unterminated string had the value decimal 16, SpeakJet would interpret that as a Wait command -- and all voicing would freeze, and it could be very hard to debug. So remember to add a 0 to the end of strings.

    Otherwise, I'm enjoying the little thing. Now to decide on an application...

  • Member #401698 / about 12 years ago / 1

    please bring back the shield with the DIP speakjet, i cant solder the TTS256 to the speakjet now.

Customer Reviews

No reviews yet.